Alteryxで日数を出力する
こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。
今回はAlteryxで日数を出力する方法についてご紹介します。
日数を出力する
DateTimeDiff関数を使う
日数の出力に使用できる関数として、DateTimeDiffがあります。まずはDateTimeDiffを使用して日数を出力してみます。
In/Out -> Text Input を使用して、以下のデータを用意しました。このデータの「Start」列の2018-10-01から「End」列の2018-10-10までの日数を出力します。
Preparation -> Formula を追加し、新しい列に「DateTimeDiff([End],[Start],"days")」を設定します。DateTimeDiffは指定の日時の差分を出力する関数で、「"days"」を指定すると日数で差分を出力します。
結果を確認してみると、新しく作成した列に9という日数が出力されています。元のデータでは時間は指定していませんが、2018-10-01 00:00:00から2018-10-10 00:00:00として数えるため、日数は9日となります。
ちなみに、「Start」列のデータを「2018-10-01 01:00:00」に変更しますと、日数は8日になります。
DateTimeAdd関数を使う
今度は2018-10-01から2018-10-10までを、9日ではなく10日として数えたい場合について考えてみます。
Preparation -> Generate Rows と Transform -> Summarize を使用して、以下のワークフローを作成します。
前項と同じデータを使用し、「Start」列の2018-10-01から「End」列の2018-10-10までの日数を出力します。
Generate Rowsツールでは、Create New Field を選択して新しい列を作成し、Date型で出力します。Initialization Expression には「[Start]」、Condition Expression には「RowCount <= [End]」、Loop Expression (Usually Increment) には「DateTimeAdd([RowCount],1,"days")」を設定します。DateTimeAdd関数では、「RowCount」列に対して1日ずつ足して日付を表示するように設定しています。
「Start」列の2018-10-01からはじまり、「End」列の2018-10-10まで1日ずつ出力されています。
Summarizeツールでは、「Start」列と「End」列でグループ化し、データの数を数えます。
出力を確認すると、「Count」列に10と出力されています。
年ごとに日数を出力する
今度は2018-10-01から2021-10-01までを、年で分けて日数を出力してみます。
Generate Rows、Formula、Summarizeツールを使用して、以下のワークフローを作成します。
用意したデータは以下の通りです。
Generate Rowsツールでは前項と同様の設定を行い、新しく「RowCount」列を作成して2018-10-01から2021-10-01まで1日ずつ出力します。
Formuraツールでは新しく「Year」列を作成し、「RowCount」列に出力した年を抜き出すよう「Left([RowCount], 4)」を設定します。
Summarizeツールでは、「Start」列、「End」列、「Year」列でグループ化し、データの数を数えます。
結果を確認すると、年ごとに日数が出力されています。
最後に
今回は日数を出力する方法についてご紹介しました。今後もAlteryxの機能をご紹介していきます。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。